Ci sono anche altri approcci. Ad esempio in cake a volte non e' il dispatcher a sapere quanti parametri accetta la funzione, ma e' la funzione a elaborare l'input. Per farti un esempio, cake puo' passare tutto il post in una variabile, $this->data. Poi nel metodo vai con if($this->data[param1] )
Oppure tutti i parametri.. es /categoria/list/sort:asc/filter:blah.. in cake questi vengono chiamati named parameters, e li controlli con if($this->passedArgs['sort'] ...).
Con questo approccio non ti importa quanti parametri ti passano, il tuo metodo prendera' solo quelli che gli servono.
Ovviamente e' il router a trasformare la url in array da passare ai metodi.