In our attempt to convert parts of our own internal company framework into a set of open-source components we did not find a routing package that was fully PSR-7 compatible and was able to also generate uris based on the routing definitions. Initially the routing component was part of our Adroit middleware, a middleware focused on PSR-7 as well as the ADR pattern. During our attempt to turn Adroit into a (micro) web framework called Adrenaline we also extracted the routing component into a separate package.
When I began converting the unKonf API backend to make use of Adroit and Disco I wanted to give the willdurand/Hateoas a try to turn the API into a "real" HATEOAS REST web service. Since we use our Pathfinder component as a router it felt natural to use Pathfinder to generate the links for the relations between the different domain objects. Luckily the willdurand/hateoas is pretty flexible and allows to define custom Url Generators with a few lines of code: