I'm trying to think of exceptions, but I think almost every URL input should successfully round-trip from parse and back to to_s either producing the original string or raising an error. I've found some edge cases where this doesn't hold true (e.g. authority with a trailing colon), but I think they may qualify as bugs?