public function getRegionObj($region) {
		// Try to find regions directly by CSS selector.
		try {
			$regionObj = $this->getSession()->getPage()->find(
				'css',
				// Escape CSS selector
				(false !== strpos($region, "'")) ? str_replace("'", "\'", $region) : $region
			);
			if($regionObj) {
				return $regionObj;
			}
		} catch(\Symfony\Component\CssSelector\Exception\SyntaxErrorException $e) {
			// fall through to next case
		}

		// Fall back to region identified by data-title.
		// Only apply if no double quotes exist in search string,
		// which would break the CSS selector.
		if(false === strpos($region, '"')) {
			$regionObj = $this->getSession()->getPage()->find(
				'css',
				'[data-title="' . $region . '"]'
			);
			if($regionObj) {
				return $regionObj;
			}
		}

		// Look for named region
		if(!$this->regionMap) {
			throw new \LogicException("Cannot find 'region_map' in the behat.yml");
		}
		if(!array_key_exists($region, $this->regionMap)) {
			throw new \LogicException("Cannot find the specified region in the behat.yml");
		}
		$regionObj = $this->getSession()->getPage()->find('css', $region);
		if(!$regionObj) {
			throw new ElementNotFoundException("Cannot find the specified region on the page");
		}

		return $regionObj;
	}