Je ne connais pas vraiment le back du Router (faudrait que je regarde le tuto...), mais tu pourrais utiliser func_get_args()+ des exceptions (en particulier InvalidArgumentException). Tu interceptes tout les paramètres et ceux qui sont des strings seront des routes qui pointent sur la closure.
Ce que j'aime bien faire, perso, c'est de créer une méthode spéciale pour la validation des paramètres du méthode public que a une input (paramètres) complexe.