Это очень интересный вопрос. Я не знаю конкретного решения c, но я бы просто нашел кратчайший путь между каждым набором нужных узлов.
Итак, вы найдете кратчайший путь для
Paris -> Sydney
Sydney -> Tokyo
Tokyo -> Moscow
Moscow -> Berlin
Berlin -> Paris
и затем сложите их вместе.
Конечно, это может означать, что вы все равно пройдете через один из нужных узлов. Я не уверен, как бы вы хотели справиться с этой ситуацией.