added a new routing gen option 'omit_defaults' (defaults to false) which will cause gen() to generate the shortest possible url (by omitting the optional patterns where the parameter and the default match from right to left)