/** * Match routes. * * @param string $route * @param Route $routeItem * * @return Route|false */ public function matchRoute($route, Route $routeItem) { $regex = $routeItem->getRegex(); if (!$regex || $this->debug) { $regex = BasicCompiler::compile($routeItem->getPattern(), $routeItem->getRequirements()); $routeItem->setRegex($regex); } $route = RouteHelper::normalise($route); if (preg_match($regex, $route, $matches)) { $variables = RouteHelper::getVariables($matches); $variables['_rawRoute'] = $route; } else { return false; } $routeItem->setVariables(array_merge($routeItem->getVariables(), $variables)); return $routeItem; }