Description
The hashCode computation for PropertiesStep collides for multiple steps when there are repeating keys. For example .properties() and .properties("a","a"), .properties("a") and .properties("a","b","b") have the same hash code because of xor of just properties here https://github.com/apache/tinkerpop/blob/cff4c161615f2b50bda27b6ba523c7f52b833532/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PropertiesStep.java#L80-L87. Basically, the even keys cancel out the xor computation.
The same is also true for AbstractStep.hashCode which takes xor of labels.
GraphStep does the same thing using ids. so g.V("1", "1") and g.V() would collide during comparison.