There are two road maps represented as a set of vertices and edges. Maps cover different areas so I want to merge two maps.

An example of two maps (red and blue). The segment between two stars should be matched.
Representation:
Vertices: longitude and latitude represented as (x,y) pair of doubles
Edges: A pair of vertices connected by the Edge weighted by Euclidean distance between connected Vertices
Labels: Most of the Edges are labeled with address ranges.
Labels alone don't solve matching problem because of same name streets, address aliases, mismatching ranges and unlabeled Edges.
Current approach: Vertices from two maps are considered matching if they are within N feet from each other. Edge is added to connect proximal Vertices. Choice of the parameter N is important.

Different roads are separated by 40 feet.

Vertices separated by 500 feet represent the same road.
Closeness cutoff should somehow depend on the "area density". The more Edges there are the lower should be the cutoff distance N. What would be the good and efficient metrics to measure road density?
Is there a useful Vertex neighborhood metrics to decide if a Vertex of first map is matching the vertex of another map?