public function build_url(array $params, $raise_e = true)
    {
        // if ($this->_to == 'help#:action')
            
        $this->build();
        $this->_build_params = $params;
        
        $this->_build_url = $this->_url;
        
        # If main variables aren't present, return.
        if (!$this->_check_main_vars()) {
            $this->_build_params = array();
            $this->_build_url = '';
            return false;
        }
        if (($groups = $this->_optional_groups) && (array_shift($groups) ?: true) && $groups) {
            foreach ($groups as $group) {
                $parsed_group = $this->_check_optional_groups($group);
                $this->_build_url = str_replace($group['part'], $parsed_group, $this->_build_url);
            }
        }

        # Remove remaining parentheses.
        $this->_build_url = str_replace(array('(', ')'), '', $this->_build_url);
        # Set build_params as its keys for later call of remaining_params()
        $this->_build_params = array_keys($this->_build_params);
        # Add leading slash as routes don't include it.
        return '/' . $this->_build_url;
    }