Please solve the programming task below using a self-contained code snippet in a markdown code block.

A subsequence of a string is a new string that is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (i.e., "ace" is a subsequence of "abcde" while "aec" is not).
Given two strings source and target, return the minimum number of subsequences of source such that their concatenation equals target. If the task is impossible, return -1.
 
Please complete the following python code precisely:
```python
class Solution:
    def shortestWay(self, source: str, target: str) -> int:
```