Noted - however the problem with that approach is that we actually end up encoding _LESS_ characters.

I.e. if I remove the escape list, then I get:

expected: "%3A%2F%3F%23%5B%5D%40%21%24%26%27%28%29%2A%2B%2C%3B%3D%20%22%7B%7D"
            got: ":/?%23[]@!$&'()*+,;=%20%22%7B%7D"

For my case(s), this is fine - I only really care about the set ' "{}' which I added at the end, which should _ALWAYS_ be encoded - however as-is currently, a lot of things which don't strictly need to be URI encoded are being, and making the list only the things which _need_ URI escaping will, no doubt, break people's pre-existing code.

Thoughts?