Validate password inputs and add tests.
Add test for protocol-less URL with path.
Better variable name for hash input.
More flexible protocol (URI scheme) matching.
Accept user/password authority (user:password@) in URIs.