Hah, and in the week after I wrote parsers, renderers etc. for URI Templates... Anyway, they're cool, but I wish to <deity of choice> that they were actually reversible. They so
nearly are, but they buggered it up with Level 4 modifiers. For example...
/{lista:*,listb:*}
+
"lista": [ "one", "two" ], "listb": [ "three", "four" ]
=
/one,two,three,four
Now, reverse it. You can't because there's no way of knowing which elements belong in which list. It's so
annoyingly close to being a pure dual, but it's not. So I've had to make up some irksome rules for the edge cases like that which make me sad, but make matching using templates feasible (wise? maybe not, see note in spec, but that note wouldn't be even needed if only... sigh). URI Templates are a good example of why I wish I worked on IETF specs, while also being glad I don't...