:+1: for the proposition of @davedevelopment, but I would set a static method as default controller:

```php
function match($pattern, $to = 'Silex\\Controller::noController')
{
    $route->setDefault('_controller', $to);
}

// -----

class Controller
{
    static public function noController(Request $request)
    {
        throw new \LogicException(sprintf('The route "%s" must have code to run when it matches', $request->attributes->get('_route'));
    }
}
```