public function addRoute(array $verbs, $pattern, $action, $name = null)
    {

        $pattern = $this->resolvePatternValue($pattern);

        $action  = $this->resolveActionValue($action);

        $name    = $this->resolveNameValue($name);

        $route   = new Route($pattern, $action, $verbs, $name);

        if ($filters = $this->getDefaultFilters()) {

            $route->setFilters($filters);
        }

        $this->routes->add($route);

        return $route;
    }