function _intersects(start1, end1, start2, end2) {
        if (start2 >= start1 && start2 < end1) {
            return true;
        }

        return end2 > start1 && end2 < end1;
    }
determines if a new match intersects with an existing one

@param {number} start1    start position of existing match
@param {number} end1      end position of existing match
@param {number} start2    start position of new match
@param {number} end2      end position of new match
@returns {boolean}