public static function findSearchablePages($pid=0, $domain='', $blnIsSitemap=false)
	{
		$objPages = PageModel::findPublishedByPid($pid, array('ignoreFePreview'=>true));

		if ($objPages === null)
		{
			return array();
		}

		$arrPages = array();

		// Recursively walk through all subpages
		foreach ($objPages as $objPage)
		{
			if ($objPage->type == 'regular')
			{
				// Searchable and not protected
				if ((!$objPage->noSearch || $blnIsSitemap) && (!$objPage->protected || (Config::get('indexProtected') && (!$blnIsSitemap || $objPage->sitemap == 'map_always'))) && (!$blnIsSitemap || $objPage->sitemap != 'map_never') && !$objPage->requireItem)
				{
					$arrPages[] = $objPage->getAbsoluteUrl();

					// Get articles with teaser
					if (($objArticles = ArticleModel::findPublishedWithTeaserByPid($objPage->id, array('ignoreFePreview'=>true))) !== null)
					{
						foreach ($objArticles as $objArticle)
						{
							$arrPages[] = $objPage->getAbsoluteUrl('/articles/' . ($objArticle->alias ?: $objArticle->id));
						}
					}
				}
			}

			// Get subpages
			if ((!$objPage->protected || Config::get('indexProtected')) && ($arrSubpages = static::findSearchablePages($objPage->id, $domain, $blnIsSitemap)))
			{
				$arrPages = array_merge($arrPages, $arrSubpages);
			}
		}

		return $arrPages;
	}