Managing custom aliases on translated content
I had to create a custom path based on a field. I was able to use hook_pathauto_pattern_alter(). If you need custom path per node then this should work. You will need to add a field. It can be a plain text field.
Pathauto conditions. Here is an example of the hook. code review for hook_pathauto_pattern_alter