When a request comes in, it is matched against any of the handlers. If a match is found, it is matched against any filter criteria. If it matches a filter criteria, it is passed through the filter before the handler executes. If not, it just goes straight to the handler for execution. The order in which handlers and filters were added has no bearing.
In order to accomplish what I think you're trying to accomplish, add your filter as you have done. Then, inside the Filter() sub of the VerifyUser Filter, you can test req.RequestURI to see if it equals "login". If it does, returning True will allow the login request to proceed to its handler for execution.