There is a subtle problem in the reference implementation: it will break if one of the paths in PATH contains quoted path separator. On windows that would be quted with ":
"c:\path;with;sep"
and on *nix something like
/path\:with\:sep
The problem is in the call
path.split(os.path.sep)
To do this properly we would need another helper function, e.g.
shutil.split_path_list(path)
that would split paths considering quoting. I should also strip quotes from every path in the list.
I would write reference implementation, but I'm not sure if I know all the quoting rules of various os-es.