@Override
    public boolean match(PathInput input) {
        if (input.end()) {
            return isOptional();
        } else {
            String item = input.value();
            try {
                long n = Long.parseLong(item);
                input.next();

                if (input.isBind()) {
                    bind(input, n);
                }
            } catch (NumberFormatException ex) {
                return isOptional();
            }

            return true;
        }
    }