Thanks alot Aris!

I've been learning about pathfinding lately, and this will hopefully help me understand it better. The code seems to be documented/commented pretty good so that's great.

PS. why did you choose the dijkstra algorithm? What are the advantages over say, A*? Is it faster? Easyer to implement? How is performance for long and short paths compared to other algorithms?