name: passing the matrix;
ver. 1.2: fixed second part;
ver. 1.2: fixed second part;
EDIT
Ok, I made it a bit more perfect, no weird moves 
Recording the video solution...
Another awesome logic puzzle!!
Thanks for creating! ![]()
Conclusion: the whole makes up for the lack of polish in the parts.