protected function dumpStep($keywords, $text, $short = true, $excludeAsterisk = false)
    {
        $dump = '';

        $keywords = explode('|', $keywords);
        if ($short) {
            $keywords = array_map(
                function ($keyword) {
                    return str_replace('<', '', $keyword);
                },
                $keywords
            );
            $keywords = call_user_func($this->keywordsDumper, $keywords, $short);
            $dump .= <<<GHERKIN
    {$keywords} {$text}

GHERKIN;
        } else {
            foreach ($keywords as $keyword) {
                if ($excludeAsterisk && '*' === $keyword) {
                    continue;
                }

                $indent = ' ';
                if (false !== mb_strpos($keyword, '<', 0, 'utf8')) {
                    $keyword = mb_substr($keyword, 0, -1, 'utf8');
                    $indent = '';
                }
                $keyword = call_user_func($this->keywordsDumper, array($keyword), $short);
                $dump .= <<<GHERKIN
    {$keyword}{$indent}{$text}

GHERKIN;
            }
        }

        return $dump;
    }