I think the following should be supported:
uri.setData(uri.getData()).toString() == uri.toString()
and this is not the case now: http://jsfiddle.net/J7tMj/
cat=1&cat=2 are different GET parameters than cat=1&cat=2
See also #1027.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Hm, that's Object.toQueryString who doesn't allow multiple GET parameters with the same name.