This paper addresses the problem of maximizing the expected size of a matching in the case of unreliable vertices and/or edges. The assumption is that upon failure, remaining vertices that have not been matched may be subject to a new assignment. This process may be repeated a given number of times, and the objective is to end with the overall maximum number of matched vertices. The origin of this problem is in kidney exchange programs, going on in several countries, where a vertex is an incompatible patient-donor pair; the objective is to match these pairs so as to maximize the number of served patients. A new scheme is proposed for matching rearrangement in case of failure, along with a prototype algorithm for computing the optimal expectation for the number of matched vertices. Computational experiments reveal the relevance and limitations of the algorithm, in general terms and for the kidney exchange application.