/** * Add Route * * @param string|Route $name * @param string $pattern * @param array $variables * @param array $method * @param array $options * * @return static */ public function addRoute($name, $pattern = null, $variables = array(), $method = array(), $options = array()) { if ($name instanceof Route) { $route = $name; } else { if (!is_string($pattern)) { throw new \InvalidArgumentException('Route pattern should be string'); } $route = new Route($name, $pattern, $variables, $method, $options); } if ($name = $route->getName()) { $this->routes[$name] = $route; } elseif (!$name || is_numeric($name)) { $this->routes[] = $route; } return $this; }