private void findAllNodes(Node<V> node, String path, int begin, boolean exact,
                              ImmutableList.Builder<Node<V>> accumulator, IntHolder nextHolder) {
        final Node<V> checked = checkNode(node, path, begin, exact, nextHolder);
        if (checked != continueWalking()) {
            if (checked != null) {
                accumulator.add(checked);
            }
            return;
        }

        final int next = nextHolder.value;
        // find the nearest child node from root to preserve the access order
        Node<V> child = node.catchAllChild;
        if (child != null) {
            accumulator.add(child);
        }
        child = node.parameterChild;
        if (child != null) {
            findAllNodes(child, path, next, exact, accumulator, nextHolder);
        }
        child = node.children.get(path.charAt(next));
        if (child != null) {
            findAllNodes(child, path, next, exact, accumulator, nextHolder);
        }
    }
Finds a {@link Node} which is mapped to the given {@code path}. It is recursively called by itself
to visit the children of the given node. Returns {@code null} if there is no {@link Node} to find.
core/src/main/java/com/linecorp/armeria/server/RoutingTrie.java