add new canonifyuniquely function
Merge pull request #832 from tzz/tzz/feature-canonify-uniquely

add new canonifyuniquely function