Shortest Path

In the maze given here, a 0 represents a wall and a space represents an open path that can be moved through. There are multiple paths that take one from the starting position at X to the final position at Y. Which path is the shortest?

Use a breadth-first search strategy to identify the shortest way through the maze. Have your program identify how many steps were taken, and list out the path as a series of coordinates?