public:
Substitute(const std::unordered_map<std::string, Directive*> &substitution_map);
Substitute(std::initializer_list<std::pair<const std::string, Directive*>> substitution_map);
public:
Substitute(const std::unordered_map<std::string, Directive*> &substitution_map);
Substitute(std::initializer_list<std::pair<const std::string, Directive*>> substitution_map);