Спасибо, что ответили!
Попытка номер 2.
1. Связный граф всегда можно "расчесать", и получить граф в виде дерева (рис. 1).
2. Если на концах такого дерева имеются отмеченные точки, то возникает два варианта:
1. Таких точек чётное количество на одной макушке.
2. Таких точек нечётное количество на одной макушке.
Если таких точек чётное количество, то образуем пары из этих вершин и удалим эти вершины из графа.
Если таких точек нечётное количество, то после образования пар из вершин на этой макушке и последующего удаления, останется одна отмеченная вершина. При этом, если на конце ветки осталась одна отмеченная вершина и она соединена с неотмеченной вершиной, которая "свободна-болтающаяся", то её удаляем из графа. (рис. 2)
Все макушки с неотмеченными вершинами тоже удаляем.
Таким образом, повторяя действия описанные выше, мы можем разбить отмеченные пары таким образом, что они не будут пересекаться по ребрам путями.
Извините за косноязычность. С теорией графов почти не знаком.