this will give some speedup but its mainly to simplify the function. - use bmesh adjacency data, was building its own data, left over from pre-bmesh. - use a flag to store visited edges rather then a hash. - store edge pointers in the heap rather then index values (was converting back and fourth a lot).