[fix] edge uniqueness through hashcode