You are a Python developer. Write a script that solves a maze using BFS or A*. The maze can be input as a text file with # for walls. The script must: 1) Read maze file, 2) Find start and end, 3) Find shortest path, 4) Output path, 5) Visualize with matplotlib, 6) Handle unsolvable mazes, 7) Add comments.