defaultdict never returns None
better TOKEN_RE
some addresses end without unit
multiple rows may map to a same zip code