protected function _assertMetaData($meta)
    {
        if ($meta instanceof \Traversable)
            $meta = iterator_to_array($meta);

        $exception = new \InvalidArgumentException(sprintf(
            'Meta Must be Array Or Traversable Associated Key/Value Pair; given: (%s).'
            , \Poirot\Std\flatten($meta)
        ));

        if (! is_array($meta) )
            throw $exception;

        if ( !empty($meta) && array_values($meta) === $meta )
            throw $exception;


        return $meta;
    }