List<Score> matchCoupleChainFind(Map<Person, List<Score>> table, Person start, int limit){
        if (!table.containsKey(start)) {
            return Collections.EMPTY_LIST;
        }
        List<Score> path = new LinkedList<>();
        HashSet<Person> set = new HashSet<>();
        Person next = start;
        while (next != null && set.add(next)) {
            List<Score> ls = table.get(next);
            if (ls.size() < 0) break;
            Score s = ls.get(0);
            path.add(s);
            next = s.target;

        }
        //path.size + 1 >= limit
        if (path.size() + 1 < limit) {
            return Collections.EMPTY_LIST;
        }
        return path;
    }