resolveSecondaryOverlaps(scores) {
    for (var i = 0; i < scores.length; i++) {
      if (scores[i].score > this.opts.overlapSensitivity) {
        let vertex = this.graph.vertices[scores[i].id];

        if (vertex.isTerminal()) {
          let closest = this.getClosestVertex(vertex);

          if (closest) {
            // If one of the vertices is the first one, the previous vertex is not the central vertex but the dummy
            // so take the next rather than the previous, which is vertex 1
            let closestPosition = null;

            if (closest.isTerminal()) {
              closestPosition = closest.id === 0 ? this.graph.vertices[1].position : closest.previousPosition;
            } else {
              closestPosition = closest.id === 0 ? this.graph.vertices[1].position : closest.position;
            }

            let vertexPreviousPosition = vertex.id === 0 ? this.graph.vertices[1].position : vertex.previousPosition;
            vertex.position.rotateAwayFrom(closestPosition, vertexPreviousPosition, MathHelper.toRad(20));
          }
        }
      }
    }
  }
Resolve secondary overlaps. Those overlaps are due to the structure turning back on itself.

@param {Object[]} scores An array of objects sorted descending by score.
@param {Number} scores[].id A vertex id.
@param {Number} scores[].score The overlap score associated with the vertex id.