Merge branch 'develop'

* develop:
  Mod: PSR4
  Fix: Better vendor name
  Fix: Return array instead of null when no matches
Add: Generic Router Interface

Renamed Router to NaiveRouter and introduced Router as
an interface so I can introduce multiple types of
router to suit different situations
Merge branch 'feature/router-interface' into develop

* feature/router-interface:
  Add: Generic Router Interface
Add: SerializableRouter

Created new router that can be serialized/cached or dispatch
multiple routes if required.
Merge branch 'feature/cacheable-router' into develop

* feature/cacheable-router:
  Add: SerializableRouter