Sure here are some condition I thought would be a 'win'
All the circles are in pairs so I am not sure why this doesn't win.
I see the swaps now. I feel like some more user feedback for it would be helpful (like don't consume a move if a swap were to do nothing). Or some dynamic highlighting based on how the swaps would occur based on the rectangle shape.