I've been trying for a while to develop an algorithm that counts the maximum number of disjoint vertex paths in a graph, but with an addition of "forced paths". Forced paths are here marked with bold lines. Paths that enter a vertex with a forced path is forced to enter it and flow along.
I've omitted the adaption for running max flow on vertex disjoint graphs. The graph is undirected and all edges have flow=1.

For example if we have the path 6->3 the forced path will force 6->3->2->1->9->10->7->8->5. When a vertex is visited with a forced edge that is not part of the path that forced edge is chosen.
The same goes for 6->5 which will result in 6->5->8->7->10->9->1->2->3

When I run maxFlow(6,4) (Ford Fulkeson implementation) it will result in the paths 6->5->4, 6->4 and 6->3->4 and therefor maxFlow(6,4)=3.
Can anybody point me in the right direction? Could I modify Ford Fulkeson, or maybe use another max flow algorithm to account for the forced paths?
Thanks in advance
You can transform the graph by taking each pair of endpoints of a forced path.
For each forced path all the vertices, except ones on the forced path, adjacent to an endpoint will have an ingoing edge from that endpoint and an outgoing edge to the other endpoint, and no outgoing edges to the endpoint they are connected to in the original graph. The two endpoints will be connected by an undirected edge with the minimum capacity of an edge along the forced path and the remainder of the forced path will be deleted.
By now it might be clear that if you run Ford-Fulkerson on the transformed graph that it will find the max flow which obeys the constraints you laid out. If not you can ask me to clarify.