Add support for additional characters in the URL, as supported by RFC 1738.

Ran into a bug with dashes in URLs.  For example, if you mapped the following two routes:

```
router.get('/path/with-dash', function(req, res) { ... });

router.post('/path/with-dash', function(req, res) { ... });
```

It would always route requests to the first route that matched the request url and would ignore the method constraint because the regexp that parses the route name would fail if it contained a character other than the set `[\w\/:]`.

RFC 1738 defines the following characters as valid within a URL:

`$-_.+!*'(),`

You'll notice this still doesn't support the `'` (single-quote).  That is because Node encodes the single-quote as `%27` so the regexp won't match it.  It might be a good idea to decode URLs before matching them against the regexp, but that's a larger change.