public function prepareRouter()
    {
        $router = new Router();

        // Inject Logger if we have one
        if ($this->logger) {
            $router->setLogger($this->logger);
        }

        // Build the matcher stack
        $router->addMatcher($this->buildDefaultMatcher());

        if ($this->hasRoutingTemplates()) {
            $router->addMatcher($this->buildTemplateMatcher());
        }

        if ($this->hasRoutingConfig()) {
            $router->addMatcher($this->buildSymfonyMatcher());
        }

        return($router);
    }