public function isSupported($feature)
{
if (!array_key_exists($feature, $this->supported)) {
if (!isset($this->features[$feature])) {
throw new UndefinedFeatureException($feature);
}
$this->supported[$feature] = (bool) call_user_func($this->features[$feature], $this);
}
return $this->supported[$feature];
}