Trailing / is always optional client-side

Fixes #3