You can create a RequestCoontextDecotrator and modify the behavior of the Event Object to support specific needs that are unique to your application. In this case, if many of your links need to meet the format you explained you can modify the buildLink() method to work that way you want. For example, this is the function signature for a BuildLink I use on tv.adobe.com that accepts some extra paramaters:
Now, I can still call Event.buildLink() in my application and create complex links like you shared without having to repeat myself or come up with some UDF.