Я хотел бы сделать что-то вроде
if [node:subtitle] is available make the path pattern [node:title]-[node:subtitle] else [node:title]
Каков наилучший способ сделать что-то подобное?
Боюсь, вы не можете сделать это с модулем pathauto, у него просто нет этой функциональности.Вам нужно будет реализовать hook_node_presave() и изменить путь вручную для каждого узла, для которого вы хотите это сделать.
hook_node_presave()