Sitecore provides you the possibility to implement your own layout resolver if the default one is not enough for you. Basically you can change the layout of a page based on a business logic without changing the item in the database.
The default Sitecore Name Value List field has an annoying issue. It does not allow to use special characters like ‘-‘ for the key. I just digged into the Sitecore.Kernel library and I found a regular expression validation which is hardcoded.
Let’s overwrite this class make it more flexible. The main issue with the implementation that they don’t encode/decode the URI.
The module is developed by @maaakstiles and I really like it because it’s easy to extend/change to fit your requirements. The basic idea is very easy. It gets data from somewhere (Sitecore/CSV/SQL/MySQL). I played with the SQL part.