private static function _run($request)
    {
        // Whether or not we have matched the URL to a route
        $matched_route = false;

        $request = '/' . $request;

        //make sure the request has a trailing slash
        $request = rtrim($request, '/') . '/';

        $request = str_replace("//","/",$request);

        // Sort the array by priority
        ksort(self::$_routes);


        // Loop through each priority level
        foreach (self::$_routes as $priority => $routes) {
            // Loop through each route for this priority level
            foreach ($routes as $source => $destination) {

                // Does the routing rule match the current URL?
                if (preg_match($source, $request, $matches)) {
                    // A routing rule was matched
                    $matched_route = TRUE;
                    $attr = implode('/',array_intersect_key($matches, array_flip(array_filter(array_keys($matches), 'is_string'))));
                    self::$_attr = explode('/', trim($attr, '/'));
                    self::_set_callback($destination);
                }



            }
        }

        if(!$matched_route)
        {
            if($request != '/')
            {
                self::_set_callback($request);
            }
        }

    }
private static function _run($request)
    {
        // Whether or not we have matched the URL to a route
        $matched_route = false;

        $request = '/' . $request;

        //make sure the request has a trailing slash
        $request = rtrim($request, '/') . '/';

        $request = str_replace("//","/",$request);

        // Sort the array by priority
        ksort(self::$_routes);


        // Loop through each priority level
        foreach (self::$_routes as $priority => $routes) {
            // Loop through each route for this priority level
            foreach ($routes as $source => $destination) {

                // Does the routing rule match the current URL?
                if (preg_match($source, $request, $matches)) {
                    // A routing rule was matched
                    $matched_route = TRUE;
                    $attr = implode('/',array_intersect_key($matches, array_flip(array_filter(array_keys($matches), 'is_string'))));
                    self::$_attr = explode('/', trim($attr, '/'));
                    self::_set_callback($destination);
                }



            }
        }

        if(!$matched_route)
        {
            if($request != '/')
            {
                self::_set_callback($request);
            }
        }

    }
private static function _run ( $ request ) { // Whether or not we have matched the URL to a route $ matched_route = false ; $ request = '/' . $ request ; //make sure the request has a trailing slash $ request = rtrim ( $ request , '/' ) . '/' ; $ request = str_replace ( "//" , "/" , $ request ) ; // Sort the array by priority ksort ( self :: $ _routes ) ; // Loop through each priority level foreach ( self :: $ _routes as $ priority => $ routes ) { // Loop through each route for this priority level foreach ( $ routes as $ source => $ destination ) { // Does the routing rule match the current URL? if ( preg_match ( $ source , $ request , $ matches ) ) { // A routing rule was matched $ matched_route = TRUE ; $ attr = implode ( '/' , array_intersect_key ( $ matches , array_flip ( array_filter ( array_keys ( $ matches ) , 'is_string' ) ) ) ) ; self :: $ _attr = explode ( '/' , trim ( $ attr , '/' ) ) ; self :: _set_callback ( $ destination ) ; } } } if ( ! $ matched_route ) { if ( $ request != '/' ) { self :: _set_callback ( $ request ) ; } } }
Tries to match one of the URL routes to the current URL, otherwise
execute the default function.
Sets the callback that needs to be returned

@param string $request
Tries to match one of the URL routes to the current URL otherwise execute the default function . Sets the callback that needs to be returned