Add support for optional route parameters.

Optional portions of a route are surrounded by parens (eg. "items(/page/:page)").
Merge pull request #738 from ktusznio/optional-route-params

Add support for optional route parameters.