Working out which controller handles a URL by reading annotations across forty files is a waste of an afternoon that the framework will answer in a second.
$ bin/console debug:router
Name Method Path
app_order_index GET /orders
app_order_show GET /orders/{id}
$ bin/console router:match /orders/91204
Route "app_order_show" matches
$ bin/console debug:container --parameters | grep database
$ bin/console debug:autowiring LoggerInterface
router:match is the one to reach for when a request is hitting the wrong route, because it explains which patterns were tried. debug:autowiring answers the other frequent question — what can I type-hint for this — and it is faster than searching the vendor directory. All of these read the compiled container, so they reflect what will actually run rather than what the configuration appears to say.