I use the Steiner-Tree tool from Networkx library to find the best possible route between some points of interest in an undirected, clean graph. The considered weight for this graph is just the length of segments.
Steiner tree works without error. However, a few time I see that the suggested route by the algorithm is not the most efficient one. In the attached picture, you can see that in the areas number 1 and number 2, a better route is possible to imagine.
The legend of the map:
Red points = Terminal nodes
Black points = nodes of the graph
Blue line = the suggested Steiner tree by networkx
The light line = Graph