Ошибка syntax 'foreach'?
функция целиком - ад. я бы выкинул всё это оопэ из картона, все эти статики, публики, селфи - и шарашил обычным спагетти. Не будет вызывать настолько сильный когнитивный диссонанс. 

Но если уж пытаться спасти этот ужас, 
public static function act_page($data, $key) {
      if ($key && isset($data[$key])) {
          self::$path .= '/act/'.$key;
          self::display_page($data[$key]['title']);
      } else {
          self::display_error(404);
    }
}
У вас структура switch нарушена. case внутри foreach не может быть в данном случае. Вы как будто в текстурах застряли :)