Ten router ma strasznie dziwacznie skonstruowane ścieżki. Metoda HTTP IMO niepotrzebnie jest jej częścią, co tylko utrudnia parsowanie. Widziałbym to już raczej jako coś typu:
$router->get( '/', function() {} );
$router->any( '/whatever', function() {} );
$router->handle( '/route', [ 'GET', 'POST' ], function {} );
Ogólnie to spojrzałbym na komponent routingu z Symfony.