How to handle the target variable being in the features
I think you need to formalize your problem a little bit.

If I were to predict the winner of a tennis match, I would do something like this. I will be predicting the probability of Player 1 winning (or Player 2, without loss of generality). Then, this is a simple classification problem.

Then, for the features, I will organize it in a way that uses player 1 or player 2 to represent the features.

For example, if the variables are: players-current-ranking and face-to-face-win-rate. Then the feature vector will be something like:

player1_current_rank: 10
player1_2_face_to_face_win_rate: 0.7
player2_current_rank: 20
player2_1_face_to_face_win_rate: 0.3


You can never have target variable in your feature, otherwise it won't make any sense predicting it.