if (!$uri) { return 'home'; } $matched = false; $_m = []; $max = null; foreach ($routes as $route_uri => $name) { /** @var \Illuminate\Routing\Route $route */ $route_uri = preg_replace('/\\/\\{(.*)\\?\\}/U', '*', $route_uri); $route_uri = preg_replace('/\\*\\*/U', '*', $route_uri); $route_uri = preg_replace('/\\{(.*)\\}/U', '*', $route_uri); //dump($route_uri . ' | ' . $matched . ' | ' . $max); if (\Illuminate\Support\Str::is($route_uri, $uri)) { $_m[] = [$name, $route_uri]; $m = mb_substr_count($route_uri, '{'); if (is_null($max) || !$m || $m < $max) { $max = $m; $matched = $name; } } } //dump($_m); return $matched; } } \Route::pattern('any', Route::PATTERN_ANY); \Route::pattern('user', Route::PATTERN_NUMERIC_TEXT); \Route::pattern('action', Route::PATTERN_NUMERIC_TEXT_DASH); \Route::pattern('date', Route::PATTERN_DATE); \Route::pattern('id', Route::PATTERN_NUMERIC);