Which of Blender's bpy.props properties can store a Matrix? In my script I am trying to store a Matrix, for example the region_3d.view_matrix of a 3D view. This returns:

Matrix(((0.04198726266622543, 0.9991182684898376, 3.666877432806359e-07, -0.32331380248069763),
        (-0.349155992269516, 0.014672632329165936, 0.9369498491287231, -0.4471516013145447),
        (0.9361235499382019, -0.03934017941355705, 0.3494640588760376, 0.5855286717414856),
        (0.0, 0.0, 0.0, 1.0)))


How can I store this in one of Blender's bpy.props properties for access later? I thought FloatVectorProperty was closest, but that was just a guess and depending on what I try it complains either that I'm providing tuples or that it only wants 3 items, not 4.
If you choose MATRIX as subtype the property will return a mathutils.Matrix object on access. So you might define a utility function to set the attribute

import bpy
from mathutils import Matrix

def flatten(mat):
    dim = len(mat)
    return [mat[j][i] for i in range(dim) 
                      for j in range(dim)]

bpy.types.Scene.matrix_property = bpy.props.FloatVectorProperty(
    name="Matrix",
    size=16,
    subtype="MATRIX")

mat = Matrix([[i + j for j in range(4)]
                     for i in range(0, 16, 4)])

scene = bpy.context.scene
scene.matrix_property = flatten(mat)

print(mat)
print(scene.matrix_property)