Revisiting the A* algorithm