def METHOD_NAME(self, allow_before_store=False) -> t.Iterator['Node']:
    """
    Returns an iterator of all same nodes.
    Note: this should be only called on stored nodes, or internally from .store() since it first calls
    clean_value() on the attributes to normalise them.
    """
    if not allow_before_store and not self._node.is_stored:
        raise exceptions.InvalidOperation('You can get the hash only after having stored the node')
    node_hash = self._get_hash()
    if not node_hash or not self._node._cachable:  # pylint: disable=protected-access
        return iter(())
    builder = QueryBuilder(backend=self._node.backend)
    builder.append(self._node.__class__, filters={f'extras.{self._HASH_EXTRA_KEY}': node_hash}, subclassing=False)
    return (
        node for node in builder.all(flat=True) if node.base.caching.is_valid_cache
    )  # type: ignore[misc,union-attr]