So, what happens is, we have a hashPrefix which we use to mark the beginning of a virtual app url for legacy browsers. This virtual url is what gets resolved by `urlResolve()`, so search parameters preceding the hash prefix need to get rearranged a bit.

However, I've fixed it so that the virtual hash fragment gets left alone, and will report the right thing even if there is a `?` following it.