@kizu, why does not `detect` method populate `_detected` object by itself?
`option.process(node)` modifies the node it gets and returns nothing special.
Why does not `option.detect()` behave in the same way?