[/arg1[/.../argN]] URIs can be formatted any way you like, though, with great flexibility. The Router's addRoute() method takes two arrays; the first contains a description of the request URI, token by token; the second specifies the controller and action for that request. Example: $trafficCop->addRoute(array('newuser','signup'),array('controller'=>'users','action'=>'add')); This would make site.tld/newuser/signup render the add() method in the Users controller. You can also use regex. Example: $trafficCop->addRoute(array('newuser','/^signup/'),array('controller'=>'users','action'=>'add')); This would make site.tld/newuser/signup site.tld/newuser/signup12 site.tld/newuser/signupw00t all render the add() method in the Users controller. You can also use wildcards to indicate the existence of further tokens: $trafficCop->addRoute(array('newuser','view','?'),array('controller'=>'users','action'=>'add')); This would make site.tld/newuser/view site.tld/newuser/view/4 site.tld/newuser/view/yargie render the add() method in the Users controller. It would NOT, however, work for these: site.tld/newuser/view/4/5 site.tld/newuser/view/asdf/asefefe/asdfae/asgee/awe/sdfsa Using a '*' instead of '?' in the addRoute() call above, however, would make the three URIs above render the add() method of the Users controller in addition to all URIs that would work using '?'. */ // default route for site index $trafficCop->addRoute(array(),array('controller'=>'pages','action'=>'index')); ?>