Finally fixed move generation. It seems that, for whatever reason, the path list was being constantly added to as if it were a static variable. I changed it to a stack, and popped off the top after calls to generate step.