Oh, I'm a bit late for the party and my approach is very similar to Crantisz' answer. It's not a real difference but my solution uses... Vector Math! ;-) ... maybe it's still helpful for someone.
This new Shortest Edge Paths node can be a bit confusing, especially when there are more than one start and end point involved. I recommend creating a little playground for visualization.

Finding which point is near a given Empty object is straightforward. You calculate the distance between the Empty and the Position of the points that you have. If the distance is zero then it's a perfect match. Due to the limited numerical accuracy of the floating point numbers, the comparision is exactly with zero but +/- tolerance. This tolerance value is called Epsilon for the Compare (Equal) node. Finally, in conjunction with the Vector Math (Distance) node, it defines a search radius.
Let's put it into a node group because we need it twice, one time for the start empty and another time for the goal empty:

The node group works like a filter to sort out the mesh vertices that should be used as the start of the shortest paths. It's kinda like a callback in a programming language.