Removed '?' and '#' as valid path segment characters in UrlPattern to conform better with IETF RFC 3986, section 3.3-path.  Made '{format}' a first-class element for matching URL route patterns (by using 'format' instead of a regex to match).