This function can
1. Find the shortest path and distance from a starting node to an ending node on a map**
2. Find the shortest paths and distances from a starting node to ALL other nodes on a map**
**The map should consist of nodes and segments, such that:
1. nodes have the format [ID X Y] or [ID X Y Z] (with ID being an integer, and X,Y,Z representing position coordinates and of type double)
2. segments have the format [ID N1 N2] (with ID being an integer, and N1 N2 representing IDs from the nodes list such that there is an [undirected] edge/segment between node N1 and node N2, and obviously of integer type also)
The function generates a random map of nodes and segments that it uses if no inputs are given. This way, it acts like a script if it is run with no inputs, and it acts like a function otherwise.