we're considering moving to is a free square on the map, add it to our path, and make a recursive call to find the next move from that newly-chosen square. If the recursive call backtracks, we remove the square we chose from our path, and choose a different move from this location: