public function distribute()
    {
        $route = str_replace($_SERVER['SCRIPT_NAME'], '', $_SERVER['REQUEST_URI']);
        if (!empty($route) && in_array($route{0}, array('?', '/', '&'))) {
            $route = substr($route, 1);
        }
        if (!empty($route) && $this->matchUrl($route)) {
            $this->setRoute($route)->_parseRoute();
        } elseif (!empty($this->url)) {
            $this->_parseUrl();
        } else {
            throw new \RuntimeException('No route or URL to analyze and distribute!');
        }
        return $this;
    }