public function render($paths, $navAttrs = array(), $listAttrs = array()) {
		if (false !== $navAttrs) {
			$navAttrs = array_merge(array('tag' => 'nav'), $navAttrs);
			$navTag = $navAttrs['tag'];
			unset($navAttrs['tag']);
		}

		$listAttrs = array_merge(array('tag' => 'ul'), $listAttrs);
		$this->_tag = $listAttrs['tag'];
		unset($listAttrs['tag']);

		if (is_string($paths)) {
			$paths = array(array('path' => $paths));
		}

		$out = '';
		foreach ($paths as $k => $path) {
			if (is_string($path)) {
				$paths[$k] = compact('path');
			} else if (is_string($k)) {
				$attrs = (array) $path;
				$path = $k;
				if (!array_key_exists('navAttrs', $attrs) && !array_key_exists('listAttrs', $attrs)) {
					$attrs = array('navAttrs' => $attrs, 'listAttrs' => array());
				}
				$out .= $this->render($path, $attrs['navAttrs'], $attrs['listAttrs']);
				continue;
			}
			$paths[$k] = Hash::merge(array('attrs' => $listAttrs), $paths[$k]);
			$out .= $this->_render($paths[$k]);
		}

		if (empty($out)) {
			return;
		}

		if (false === $navAttrs) {
			return $out;
		}

		return $this->Html->useTag('tag', $navTag, $navAttrs, $out, $navTag);
	}