On a user level, edge rotate now works better with multiple edges selected, it wont make zero area faces or rotate edges into existing ones. With a single edge selected - rotate is less strict and will allow ugly resulting faces but still checks on duplicate edges. API: * BM_edge_rotate now takes a flag, to optionally... ** check for existing edge ** splice edge (rotate and merge) ** check for degenerate resulting faces (overlapping geometry, zero area) ** beauty - only rotate to a better fit. ... this allows it to still be used as a low level API function since all checks can be skipped. * BM_edge_rotate() now works a bit different, it find the new edge rotation before joining the faces - exposed by BM_edge_rotate_calc(). * Added api call bmesh_radial_faceloop_find_vert() - Radial Find a Vertex Loop in Face