Proper backtracking: keeping track of last move per (Board,level) tuple