Api format negotiator

When creating a RESTful API you'd like to be able to have a clear overview and simple configuration of which versions you (will) accept / are able to provide. In your API code you'd like to keep your versions separated in a nice way.
This implementation is the result of my approach to give every version of a RESTful API their own namespace under a particular directory. This way the directory containing that namespace can be 'closed' for modification to freeze an API version and keep all code for a particular version in one place to prevent mistakes / 'fixes' which lead to broken versions.