Pluralised some names where they ought to be pluralized (which breaks the API, fortunately nothing is using it other than the test code)
Changed segments to be treated as a hash rather than as an array - not finished yet