Animate Adve the Adventurer The challenge

Your task is to animate Adve the Adventurer moving through a creepy (i.e. Halloween) maze. Adve is a •; he's character fluid, though, so he does not mind being represented by a different character.

To animate Adve, you print out each frame; a frame is the map with his current location in it. Adve moves one space forward every turn and never backtracks. He starts in the first row and ends in the last.

Input

Any reasonable format like a string with a delimiter or string array. You can assume the input will be a map greater than 3*3, containing only one possible path. The only characters present will be # and . 

Output

The frames.

Example maze (ok... labyrinth)

Here is a map without Adve in it; the first and last frames are this empty map (this map is 9x15):

### #####
##  #####
## ######
##      #
####### #
#   ### #
# # #   #
# #   ###
# #######
#    ####
#### ####
####  ###
##### ###
##### ###
##### ###


This is code-golf, so shortest code in bytes wins!

The exact output for this can be found here (37 frames).

This is code-golf, so shortest code in bytes wins!
Perl, 84 bytes
Thanks @Ton Hospel for guiding me to the right direction to golf out around 30 bytes!
Bytecount includes 82 bytes of code and -0p flags.
/.*/;say y/A/ /r;s/&amp;(.{@{+}})? /A$1&amp;/s||s/ (.{@{+}})?&amp;/&amp;$1A/s||s/ /&amp;/?redo:y;A&amp;;  

Note that there are two final spaces, and no final newline (it won't work otherwise).
Takes the maze as input as outputs all the needed frames for Adve to get out of it. Note that Adve is a &amp; rather than a •, since the latter isn't utf8 (and perl doesn't use utf8 by default). Run it with -0pE flags :
perl -0pE '/.*/;say y/A/ /r;s/&amp;(.{@{+}})? /A$1&amp;/s||s/ (.{@{+}})?&amp;/&amp;$1A/s||s/ /&amp;/?redo:y;A&amp;;  ' &lt;&lt;&lt; &quot;### #####
##  #####
## ######
##      #
####### #
#   ### #
# # #   #
# #   ###
# #######
#    ####
#### ####
####  ###
##### ###
##### ###&quot;


Just for the eyes, I also made this animated version, that is a little bit longer, but will clear the terminal between each print and sleep 0.15 sec, so it will look like Adve is actually moving :
perl -0nE 'system(clear);/.*/;say y/A/ /r;select($,,$,,$,,0.15);s/&amp;(.{@{+}})? /A$1&amp;/s||s/ (.{@{+}})?&amp;/&amp;$1A/s||s/ /&amp;/?redo:say&quot;\e[H&quot;,y/A&amp;/  /r' &lt;&lt;&lt; &quot;### #####
##  #####
## ######
##      #
####### #
#   ### #
# # #   #
# #   ###
# #######
#    ####
#### ####
####  ###
##### ###
##### ###&quot;