Given a large 2D array, write an algorithm to detect if a rectangle or square of a specific value is present within the matrix.
Treat a rectangle as a contiguous region containing only the target value, with at least two rows and two columns. Return True if one exists, otherwise return False. Implement contains_value_rectangle(matrix, target), where matrix is a rectangular list of lists and the output is a Boolean.
def contains_value_rectangle(matrix, target):